\clearemptydoublepages
\chapter{Préface}
\paragraph{}
Ce document s'adresse à toute personne ayant des connaissances en système
d'exploitation telles que l'ordonnancement des tâches ainsi que quelques notions
de
temps réel.\\
\paragraph{}
Par ce document, le lecteur pourra comprendre pourquoi le noyau Linux n'est pas
temps réel et comment le modifier dans ce sens à l'aide de Xenomai, en
fournissant une
procédure complète de l'installation, en annexe.\\
\paragraph{}
Sera ensuite abordé le fonctionnement de Xenomai, nano-noyau temps réel
collaborant avec le noyau Linux.
\paragraph{}
La problématique de l'économie d'énergie sera ensuite discutée, en exposant le
fonctionnement de l'algorithme OTE, et en expliquant pourquoi il permet
d'effectuer de
l'économie d'énergie et comment l'implémenter dans Xenomai.
\paragraph{}
Ensuite, la procédure de modification de l'ordonnanceur sera détaillée.
Après quoi, la planification ainsi que les tâches effectué et les éventuels ajouts
possibles, seront
exposés dans le chapitre Projet. 
Le journal de travail, en annexe, fournira les divers travaux
effectués, jusqu'à ce jour.
\paragraph{}
Finalement, se trouvent en annexe, le patch contenant toutes les modifications apportées à Xenomai
ainsi qu'un programme d'exemple.

%\section{Note de version}
%\paragraph{}



\chapter{Introduction}
\paragraph{}
L'énergie est depuis le début du \rmnum{20}$^{e}$ siècle un des sujets
internationaux le plus important. En effet, tous les pays ont eu et on toujours un besoin de plus
en plus accru d'énergie. De
plus, de nombreuses guerres et tensions découlent directement d'affaires de
pétrole et de nucléaire.\\
La première politique des pays occidentaux fut de consommer un maximum
d'énergie. Le prix de l'énergie était alors très bas et les dégâts
environnementaux peu connus (ou peu intéressants).\\

\paragraph{}
Aujourd'hui, suite aux nombreuses catastrophes naturelles, le monde occidental
se rend compte qu'une surconsommation amène des dégâts sérieux sur la planète.
De plus, le pétrole se raréfiant et la demande d'énergie s'accroissant sans cesse
(notamment par la demande des pays en voix de développement) le prix de
l'énergie a fortement augmenté. Nous commençons donc à prendre en compte la
\flqq qualité\frqq de consommation. En d'autres termes, nous essayons d'utiliser mieux
l'énergie en consommant moins.\\
L'objectif n'est pas l'arrêt de la consommation mais une diminution globale. En effet, 10w
économisé sur des millions d'appareils à travers le monde, permettrait d'économiser quelques
centrales nucléaires...

\paragraph{}
D'un point de vue plus technique, malgré les avancées technologiques, le stockage
de l'énergie électrique reste un problème majeur. La preuve en est les voitures
électrique qui ne peuvent encore atteindre des distances comparables à celle
d'un moteur à combustion.\\
Les batteries électriques ont de nombreux désavantages, elles se déchargent
toutes seules, ont une durée de vie limitée ($\sim$2 ans pour une batterie
lithium d'un ordinateur portable), coûtent cher, demandent du temps pour
se recharger, consomment plus d'énergie pour se recharger qu'elles n'en fournissent
par la suite, contiennent des matériaux polluants et surtout ont une faible
autonomie ($\sim$3 heures pour une batterie d'ordinateur)

\paragraph{}
De ce fait, pour des appareils mobiles, la consommation est un point clé. Il
est donc nécessaire que chaque élément soit optimisé pour consommer un
minimum d'énergie dans le but de maximiser l'autonomie globale de l'appareil.

\paragraph{}
Dans cet optique, il est nécessaire d'utiliser du matériel consommant le moins
possible. Il faudra donc utiliser des processeurs optimisés dans ce sens.
Cependant, malgré un processeur à faible consommation, une utilisation optimale
de ce dernier est obligatoire.\\
En effet, en achetant une voiture consommant 2 fois moins, si on utilise une
route 2 fois plus longue pour arriver à la même destination, la consommation totale
n'aura pas changé.\\
De même pour un processeur. C'est pourquoi il sera nécessaire de l'utiliser un
minimum, où comme nous le verrons plus tard, la minimisation ne sera pas
focalisée sur le temps d'utilisation mais sur la vitesse d'exécution permettant ainsi 
de baisser la tension du cœur du processeur.

\paragraph{}
Pour ce faire, il faudra modifier
l'algorithme d'ordonnancement d'un système d'exploitation. Afin d'avoir accès au code source,
gratuitement, le choix s'est porté sur un
système d'exploitation (OS) open-source basé sur un noyau Linux.

\paragraph{}
Par ailleurs, pour pouvoir utiliser des algorithmes optimaux, il est nécessaire
de pouvoir connaitre la durée des tâches, ainsi que leurs échéances et leurs temps
d'exécution. Éléments inconnus dans un système standard. C'est pourquoi il est
obligatoire d'utiliser un système déterministe, soit un système d'exploitation
temps réel strict, permettant de connaitre en avance ce qu'il se passera plus tard. Ceci diffère
justement avec le noyau Linux destiné à un usage
standard et n'étant, de ce fait, pas temps réel.

\paragraph{}
Dû à la taille du noyau Linux, ce projet a pour cible tout système ayant une
architecture suffisante pour charger une distribution à base de noyau
Linux. En addition aux PC standard, Linux est aussi présent aujourd'hui dans les
ultra-portables (p. ex. Ubuntu mobile), les smartphones (p. ex. Android) et autres appareils
mobiles.\\
Cependant, un tel système n'est clairement pas destiné à être utilisé dans des
chipset n'ayant que quelques kilooctets de mémoire à disposition. Domaine
qu'occupe par exemple ZottaOS de l'institut SIM. 


\paragraph{}
Dans le chapitre suivant, nous étudierons pourquoi le noyau Linux n'est pas en
adéquation avec un usage temps réel. Nous verrons aussi quelles solutions sont
disponibles pour obtenir un système temps réel à partir de Linux.
